JList 클래스

✒️ 2025-05-15 14:24 내용 수정


사용자에게 오브젝트 목록을 보여주고 한 개 혹은 여러 개의 아이템을 선택하게 하는 클래스

JList 인스턴스이름 = new JList();
생성자
new JList(Object[] obj);
new JList(ListModel model);
new JList(Vector[] vector);
// String 배열로 JList 만들기
String[] name = {"a", "b", "c"};
JList<String> list = new JList<String>(name);

// Vector를 사용하여 JList 만들기
Vector<Class<?>> vector = new Vector<Class<?>>();
Class<JList> rootClass = javax.swing.JList.class;
for (Class<?> cls = rootClass; cls != null; cls = cls.getSuperclass()) {
	vector.addElement(cls);
}
JList<Class<?>> list = new JList<Class<?>>(vector);

// DefaultListModel을 사용하여 JList 만들기
DefaultListModel<Integer> model = new DefaultListModel<Integer>();
for (int i = 0; i < 10; i++) {
	model.addElement(i);
}
JList<Integer> list = new JList<Integer>(model);
메서드 설명
setListData(Object[] listData) 목록에 표시할 데이터 배열을 설정
setModel(ListModel<E> dataModel) JList에 사용할 데이터 모델을 설정
getSelectedValue() 현재 선택된 항목의 값을 반환
getSelectedValuesList() 다중 선택 모드에서 현재 선택된 모든 항목의 값을 리스트로 반환
getSelectedIndices() 현재 선택된 항목의 인덱스를 배열로 반환
setSelectionMode(int selectionMode) 목록의 선택 모드를 설정
addListSelectionListener(ListSelectionListener listener) 목록의 선택이 변경될 때 발생하는 이벤트를 처리하는 리스너를 추가
clearSelection() 모든 선택을 지워 선택을 해제
setSelectedIndex(int index) 주어진 인덱스에 해당하는 항목을 선택
setSelectedIndices(int[] indices) 주어진 인덱스 배열에 해당하는 항목들을 선택
setSelectedValue(Object anObject, boolean shouldScroll) 주어진 값에 해당하는 항목을 선택하며, 스크롤 여부를 지정
ensureIndexIsVisible(int index) 주어진 인덱스에 해당하는 항목이 보이도록 스크롤
setLayoutOrientation(int layoutOrientation) 목록의 레이아웃 방향을 설정
setCellRenderer(ListCellRenderer<? super E> cellRenderer) 목록의 각 항목을 렌더링하는데 사용할 셀 렌더러를 설정
setVisibleRowCount(int visibleRowCount) 목록의 행 수를 설정하며, 스크롤바가 필요한 경우에만 스크롤바를 표시
상수 설명
SINGLE_SELECTION 단일 선택 모드: 하나의 항목만 선택 가능
SINGLE_INTERVAL_SELECTION 단일 구간 선택 모드: 연속된 항목들 중 하나의 구간만 선택 가능
MULTIPLE_INTERVAL_SELECTION 다중 구간 선택 모드: 여러 구간의 항목을 선택 가능

ListModel 클래스

JList에 들어갈 데이터를 저장하는 클래스

DefaultListModel<E> 인스턴스이름 = new DefaultListModel<E>();
메서드 설명
addElement(E element) 목록에 새로운 요소를 추가
add(int index, E element) 지정된 인덱스에 새로운 요소를 추가
removeElement(Object obj) 목록에서 주어진 요소를 제거
remove(int index) 지정된 인덱스에 있는 요소를 제거
removeAllElements() 목록의 모든 요소를 제거합니다.
clear() 목록의 모든 요소를 제거
get(int index) 지정된 인덱스에 있는 요소를 반환
setSize(int newSize) 목록의 크기를 지정된 값으로 설정
insertElementAt(E element, int index) 지정된 인덱스에 새로운 요소를 삽입
indexOf(Object obj) 주어진 요소의 인덱스를 반환. 없으면 -1을 반환
contains(Object obj) 목록이 주어진 요소를 포함하고 있는지 여부를 반환
isEmpty() 목록이 비어있는지 여부를 반환
toArray() 목록의 요소들을 배열로 반환
setSize(int newSize) 목록의 크기를 변경. 크기를 늘릴 경우 null 또는 기본값으로 채움
toString() 목록의 문자열 표현을 반환